package com.situ.fly.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import com.situ.fly.entity.User;

/**
 * 这是一个拦截器, 用来拦截需要用户登录的操作
 * @author bobzyh
 *
 */
@Component
public class UserInterceptor implements HandlerInterceptor {

	/**
	 * 在进入Controller中的方法前执行
	 * 返回值 :   
	 * 	true : 放行
	 * 	false : 拦截
	 */
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		// 获取登录用户的信息
		// 获取 Session
		HttpSession session = request.getSession();
		User user = (User) session.getAttribute("user");
		
		if (user == null) {
			// 用户没有登录
			// 跳转到登录界面
			response.sendRedirect("/user/login");
			// 拦截
			return false;
		}
		
		// 如果用户已经登录, 放行
		return true;
	}
}
